package cn.gd.mapper.systemAdministration.Role;

import cn.gd.logging.RecordLog;
import cn.gd.pojo.Roles;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface RoleMapper {
    /**
     * 查询所有角色信息
     * @return
     */
    @RecordLog(desc = "查询所有角色信息")
    List<Roles> queryAllRoles();

    /**
     * 修改角色信息根据ID
     * @param role
     * @return
     */
    @RecordLog(desc = "修改角色信息根据ID")
    int updateRole(Roles role);

    /**
     * 根据排序查询是否有角色有则返回ID
     * @param roleOrder
     * @return
     */
    @RecordLog(desc = "根据排序查询是否有角色有则返回ID")
    int queryRoleIdByRoleOrder(Integer roleOrder);

    /**
     * 给指定排序后的所有排序加一
     * @param roleOrder
     * @return
     */
    @RecordLog(desc = "给指定排序后的所有排序加一")
    int updateAllRoleOrderPlusOneByRoleOrder(Integer roleOrder);

    /**
     * 根据角色ID查询排序序号
     * @param roleId
     * @return
     */
    @RecordLog(desc = "根据角色ID查询排序序号")
    int queryRoleOrderByRoleId(Integer roleId);

    /**
     * 给指定排序后的所有排序减一
     * @param RoleOrder
     * @return
     */
    @RecordLog(desc = "给指定排序后的所有排序减一")
    int updateAllRoleOrderMinusOneByRoleOrder(Integer RoleOrder);

    /**
     * 根据角色ID查询是否有用户使用该角色
     * @param roleId
     * @return
     */
    @RecordLog(desc = "根据角色ID查询是否有用户使用该角色")
    int queryWhetherTheRoleIsUsedByUsers(Integer roleId);

    /**
     * 上面方法查询出没有用户使用角色则可以删除根据ID
     * @param roleId
     * @return
     */
    @RecordLog(desc = "上面方法查询出没有用户使用角色则可以删除根据ID")
    int deleteRoleByRoleId(Integer roleId);

    /**
     * 新增角色
     * @param role
     * @return
     */
    @RecordLog(desc = "新增角色")
    int addRole(Roles role);
}
